perm filename APP5.XGP[AIM,DBL] blob
sn#126864 filedate 1974-10-30 generic text, type T, neo UTF8
/LMAR=0/FONT#0=FIX25/FONT#1=SIGN57/FONT#2=SHD40/FONT#3=BDI25/FONT#4=NGB30/FONT#5=NGR20
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓␈↓↓APPENDIX 5. ␈↓ ␈↓αCF .... DIALOGUE␈↓
␈↓ α,␈↓Here␈α∩are␈α∪fragments␈α∩of␈α∪the␈α∩dialogue␈α∪which␈α∩the␈α∪user␈α∩went␈α∪through␈α∩with␈α∪PUP6␈α∩to
␈↓ α,␈↓generate␈α⊂the␈α⊂CF␈α⊂program.␈α⊂ Keep␈α⊂in␈α⊂mind␈α⊂that␈α⊂the␈α⊂entire␈α⊂dialogue␈α⊂occupied␈α⊂half
␈↓ α,␈↓a␈α⊂million␈α⊂characters,␈α⊂so␈α⊂only␈α⊂3%␈α⊂of␈α⊂it␈α⊂is␈α⊂presented␈α⊂here.␈α⊂ Even␈α⊂these␈α⊂numbers
␈↓ α,␈↓are␈α⊂deceptively␈α⊂small;␈α⊂they␈α⊂assume␈α⊂the␈α⊂user␈α⊂never␈α⊂interrupts.␈α⊂If␈α⊂he␈α⊂does,␈α⊂the
␈↓ α,␈↓size␈α∩of␈α∪the␈α∩interaction␈α∪can␈α∩swell␈α∪by␈α∩two␈α∪orders␈α∩of␈α∪magnitude!␈α∩As␈α∪an␈α∩example
␈↓ α,␈↓of␈α⊃this,␈α⊃a␈α⊃four␈α⊃line␈α⊃long␈α∩patch␈α⊃of␈α⊃the␈α⊃dialogue,␈α⊃near␈α⊃the␈α⊃beginning,␈α∩was␈α⊃re-
␈↓ α,␈↓run␈α∨in␈α∨a␈α≡mode␈α∨which␈α∨allowed␈α≡the␈α∨user␈α∨to␈α≡interrupt␈α∨after␈α∨each␈α≡BEING
␈↓ α,␈↓transferred␈α∪control,␈α∪and␈α∪query␈α∪(ask␈α∪some␈α∪of␈α∪the␈α∪thirty␈α∪questions)␈α∪BEINGs␈α∩as
␈↓ α,␈↓they␈α⊗ran.␈α⊗ The␈α⊗duplicated␈α⊗patch␈α⊗is␈α↔set␈α⊗off␈α⊗by␈α⊗rows␈α⊗of␈α⊗asterisks,␈α↔on␈α⊗page
␈↓ α,␈↓A5.2.␈α⊗ The␈α⊗expanded␈α⊗version␈α⊗occupies␈α∃pages␈α⊗A5.13␈α⊗to␈α⊗A5.20.␈α⊗ As␈α⊗usual,␈α∃the
␈↓ α,␈↓user's␈α≥reponses␈α≥are␈α≥␈↓βITALICIZED␈↓,␈α≡and␈α≥the␈α≥author's␈α≥meta-comments␈α≡are␈α≥in
␈↓ α,␈↓␈↓∧LARGE,␈α∩BOLD␈α∩type␈↓.␈α∩ Frequently,␈α∪the␈α∩user␈α∩is␈α∩asked␈α∩to␈α∪pick␈α∩a␈α∩name␈α∩for␈α∪a␈α∩new
␈↓ α,␈↓BEING.␈α∃He␈α∃is␈α∃presented␈α∃with␈α∃a␈α∃set␈α∃of␈α∃plausible␈α∃choices,␈α∃from␈α∃which␈α∃he␈α∀may
␈↓ α,␈↓deviate.␈α↔ This␈α↔verbosity␈α_obscures␈α↔the␈α↔heart␈α↔of␈α_the␈α↔dialogue,␈α↔so␈α_only␈α↔the
␈↓ α,␈↓first␈α⊂such␈α⊂naming␈α⊂is␈α⊂tolerated␈α⊂below;␈α⊂the␈α⊂others␈α⊂were␈α⊂deleted.␈α⊂ Names␈α⊂of␈α⊂new,
␈↓ α,␈↓specialized␈α∪versions␈α∪of␈α∪existing␈α∀BEINGs␈α∪are␈α∪typically␈α∪suffixed␈α∪by␈α∀a␈α∪number.
␈↓ α,␈↓The colon (:) is used like a hyphen below, for unimportant reasons.
␈↓ α,␈↓←␈↓βENTER(T)␈↓
␈↓ α,␈↓USER INTERRUPT LEVEL... ␈↓β0␈↓
␈↓ α,␈↓PUP: (PUP WANTS ANY TASK)
␈↓ α,␈↓USER: ␈↓β(WRITE A PROGRAM WHICH DOES CONCEPT FORMATION)␈↓
␈↓ α,␈↓PUP: (PUP IS ABOUT TO WRITE A PROGRAM TO DO (CONCEPT:FORMATION))
␈↓ α,␈↓PUP: ((C:F CONCEPT:FORMATION C CF) IS THE SET OF PLAUSIBLE NAMES OF
␈↓ α,␈↓ (CONCEPT FORMATION) WHICH IS AN EXPANSION OF
␈↓ α,␈↓ CONCEPT:FORMATION)
␈↓ α,␈↓PUP: (PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓ VERSION OF ( CONCEPT:FORMATION))
␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( CONCEPT:FORMATION), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βCF␈↓
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α,page A5.1␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓PUP: (PUP & USER MAY REFER TO THIS NEW
␈↓ α,␈↓ SPECIALIZED VERSION OF (CONCEPT:FORMATION) AS CF:1)
␈↓ α,␈↓PUP: (THE NAME OF THE PROGRAM TO DO (CONCEPT:FORMATION) IS CF:1)
␈↓ α,␈↓␈↓∧*************************************************************␈↓
␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓ (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1)
␈↓ α,␈↓ SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓
␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓
␈↓ α,␈↓OK, READY TO MOVE ON NOW.
␈↓ α,␈↓␈↓∧*************************************************************␈↓
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (TEMPORARILY (PARTITION:A:DOMAIN))
␈↓ α,␈↓ OF THE FUNCTION CF:1 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓ BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL NIL OF THE FUNCTION CF:1 TO THIS NEW
␈↓ α,␈↓ PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(CF:1
␈↓ α,␈↓ (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓ (TEMPORARILY (PAD:2))))
␈↓ α,␈↓(CF:1 redefined)
␈↓ α,␈↓␈↓∧ The␈α
"piece␈α
of␈αcode"␈α
is␈α
now␈α
just␈αthe␈α
META:CODE␈α
of␈αthe␈α
new␈α
BEING␈α
CF:1.␈α Other
␈↓ α,␈↓∧parts␈α⊃have␈α⊃been␈α⊃filled␈α⊃in,␈α⊃so␈α⊃it␈α∩is␈α⊃no␈α⊃longer␈α⊃defined␈α⊃as␈α⊃above.␈α⊃ The␈α∩full,␈α⊃long
␈↓ α,␈↓∧definition␈α∂contains␈α∂much␈α∞bookkeeping␈α∂but␈α∂nothing␈α∂of␈α∞relevance␈α∂to␈α∂tell␈α∂the␈α∞user.
␈↓ α,␈↓∧The␈α∃"function␈α∃call␈α∃NIL"␈α∃mentioned␈α∀above␈α∃indicates␈α∃that␈α∃CF:1␈α∃is␈α∃the␈α∀topmost
␈↓ α,␈↓∧function; it is not called by any other. ␈↓
␈↓ α,␈↓MOVE CURSOR TO ( PAD:2 TYPE OF ( PARTITION:A:DOMAIN))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓ (PARTITION:BY:TAKE:ELE:AND:CLASS
␈↓ α,␈↓ PARTITION:BY:TAKE:CLASS:GET:ELE
␈↓ α,␈↓ PARTITION:BY:TAKE:ELE:GET:CLASS)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.2␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓(A .... PARTITION:BY:TAKE:ELE:AND:CLASS)
␈↓ α,␈↓(B .... PARTITION:BY:TAKE:CLASS:GET:ELE)
␈↓ α,␈↓(C .... PARTITION:BY:TAKE:ELE:GET:CLASS)
␈↓ α,␈↓FOR EXAMPLE, (B D) WOULD MEAN THAT THE 2ND AND 4TH ITEMS ARE RELEVANT
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓
␈↓ α,␈↓␈↓∧<TAKE␈α∂involves␈α∞trivial␈α∂accessing␈α∞or␈α∂reading␈α∞in;␈α∂GET␈α∞involves␈α∂working␈α∂to␈α∞obtain,
␈↓ α,␈↓∧e.g.,␈α∩by␈α∩searching␈α∪or␈α∩computing;␈α∩ELE␈α∪refers␈α∩to␈α∩a␈α∪scene;␈α∩CLASS␈α∩refers␈α∪to␈α∩the
␈↓ α,␈↓∧model of a concept.>␈↓
␈↓ α,␈↓USER: ␈↓β(A C)␈↓
␈↓ α,␈↓AT THIS POINT, I ALMOST RECOMMENDED VIRTUAL STRUCTURING, BUT DECIDED
␈↓ α,␈↓AGAINST IT. THE LIST STRUCTURE WOULD HAVE BEEN DIVIDED INTO THESE
␈↓ α,␈↓PIECES: (PARTITION:BY:TAKE:ELE:AND:CLASS:PART:OF:NIL
␈↓ α,␈↓ PARTITION:BY:TAKE:ELE:GET:CLASS:PART:OF:NIL)
␈↓ α,␈↓(I GUESS THAT EACH OF THE ABOVE :NIL-S WOULD GET REPLACED BY SOMETHING
␈↓ α,␈↓ LIKE ":PARTITION:LIST")
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (REPEATEDLY (TAKE:HOLD:OF ELEMENT)
␈↓ α,␈↓ (COND ((IS:OF:TYPE ELEMENT (COMMENT PARTITION:BY:TAKE:ELE:
␈↓ α,␈↓ -AND:CLASS))
␈↓ α,␈↓ (TAKE:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓ (MODIFY:STRUCTURE NAME:OF:CLASS))
␈↓ α,␈↓ (T
␈↓ α,␈↓ (GET:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓ (MODIFY:STRUCTURE NAME:OF:CLASS))))
␈↓ α,␈↓OF THE FUNCTION PAD:2 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:3
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( ELEMENT)
␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( IS:OF:TYPE)
␈↓ α,␈↓THE NAME CHOSEN IS HAS:NAME:5
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( ELEMENT)
␈↓ α,␈↓IS THIS THE SAME AS A ( ELEMENT) WHICH WE'VE ALREADY SEEN AND NAMED?
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.3␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓USER: ␈↓βYES␈↓
␈↓ α,␈↓SINCE ELEMENT:4 IS THE ONLY NAME FOR ( ELEMENT),
␈↓ α,␈↓AT LEAST AS FAR AS PUP KNOWS RIGHT NOW, PUP ASSUMES THAT IS THE ONE
␈↓ α,␈↓YOU WANT. AM I RIGHT?
␈↓ α,␈↓USER: ␈↓βYES␈↓
␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:6
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓ VERSION OF ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:7
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED VERSION OF ( GET:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS GET:HOLD:OF:8
␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR SPECIALIZED
␈↓ α,␈↓ VERSION OF ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:9
␈↓ α,␈↓␈↓∧<from now on, even this level of naming detail will be omitted.>␈↓
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (PAD:2) OF THE FUNCTION PAD:2 TO THIS
␈↓ α,␈↓ NEW PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(PAD:2
␈↓ α,␈↓ (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓ (PROG NIL
␈↓ α,␈↓ LABEL:1
␈↓ α,␈↓ (TAKE:HOLD:OF:3 ELEMENT:4)
␈↓ α,␈↓ (COND
␈↓ α,␈↓ ((HAS:NAME:5 ELEMENT:4 (COMMENT PARTITION:BY:TAKE:ELE:
␈↓ α,␈↓ -AND:CLASS))
␈↓ α,␈↓ (TAKE:HOLD:OF:6 NAME:OF:CLASS)
␈↓ α,␈↓ (MODIFY:STRUCTURE:7 NAME:OF:CLASS))
␈↓ α,␈↓ (T
␈↓ α,␈↓ (GET:HOLD:OF:8 NAME:OF:CLASS)
␈↓ α,␈↓ (MODIFY:STRUCTURE:9 NAME:OF:CLASS)))
␈↓ α,␈↓ (GO LABEL:1)
␈↓ α,␈↓ (COMMENT INFINITE LOOP IN THIS PROG))))
␈↓ α,␈↓(PAD:2 redefined) ␈↓∧<as a BEING>␈↓
␈↓ α,␈↓MOVE CURSOR TO ( ELEMENT:4 TYPE OF ( ELEMENT))
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.4␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION
␈↓ α,␈↓ DECISION: (WHAT IS AN ELEMENT)
␈↓ α,␈↓SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓TYPE IN THE DEFINITION OF ELEMENT:4
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS? ␈↓βNO␈↓ ␈↓∧<henceforth, this will be omitted>␈↓
␈↓ α,␈↓USER: ␈↓β(A DESCRIPTION OF A STATIC SCENE)␈↓
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (ELEMENT:4 (COMMENT PARTITION:BY:TAKE:
␈↓ α,␈↓ -ELE:AND:CLASS))
␈↓ α,␈↓ OF THE FUNCTION ELEMENT:4 TO THIS NEW PIECE OF CODE,
␈↓ α,␈↓ WHICH IS ITS BODY:
␈↓ α,␈↓(ELEMENT:4
␈↓ α,␈↓ (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓ (STRUCTURE (OBJECTS SET O)
␈↓ α,␈↓ (CLASS:NAME NAME N)
␈↓ α,␈↓ (STATIC RELATIONS S BETWEEN OBJECTS))))
␈↓ α,␈↓(ELEMENT:4 redefined)
␈↓ α,␈↓MOVE CURSOR TO ( HAS:NAME:5 TYPE OF ( IS:OF:TYPE))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION
␈↓ α,␈↓ DECISION: (HOW DO WE KNOW WHEN THE 'IS:OF:TYPE'
␈↓ α,␈↓ PREDICATE IS TRUE, AND WHEN IT IS FALSE?
␈↓ α,␈↓ PUP ASSUMES THAT USER WILL TYPE IN A
␈↓ α,␈↓ LOGICAL SENTENCE WHOSE TRUTH IS EQUIVALENT
␈↓ α,␈↓ TO IT)
␈↓ α,␈↓ SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓ TYPE IN THE DEFINITION OF HAS:NAME:5
␈↓ α,␈↓ SINCE THIS IS A PREDICATE, THE EXPRESSION YOU TYPE IN SHOULD BE A
␈↓ α,␈↓ LOGICAL EXPRESSION, WHICH IS TRUE IF ELEMENT:4 IS OF
␈↓ α,␈↓ THE (PARTITION:BY:TAKE:ELE:AND:CLASS) TYPE,
␈↓ α,␈↓ AND SHOULD BE FALSE IF IT ISNT
␈↓ α,␈↓ OF THAT TYPE.
␈↓ α,␈↓USER: ␈↓β(THE FRONT PART OF ARG1 ISNT ???)␈↓
␈↓ α,␈↓(IS ??? A LITERAL CONSTANT (WHOSE VALUE SHOULD BE ITSELF) (REPLY YES OR
␈↓ α,␈↓ NO, PLEASE) USER...)
␈↓ α,␈↓␈↓βYES␈↓
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (HAS:NAME:5 ELEMENT:4 (COMMENT PARTI
␈↓ α,␈↓ -TION:BY:TAKE:ELE:AND:CLASS)) OF THE FUNCTION HAS:NAME:5 TO THIS NEW
␈↓ α,␈↓ PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.5␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓(HAS:NAME:5
␈↓ α,␈↓ (LAMBDA (ARG1 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓ (NOT (EQUAL (CAR ARG1)
␈↓ α,␈↓ ???))))
␈↓ α,␈↓(HAS:NAME:5 redefined)
␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:3 TYPE OF ( TAKE:HOLD:OF))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓ ...HMMM...
␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!
␈↓ α,␈↓(PUP IS ABOUT TO ENCODE AN ASSIGNMENT: (OBJECTS SET O) WILL BE SET TO
␈↓ α,␈↓ SOME PART OF ARG1 WHICH IS GOING TO BE
␈↓ α,␈↓ INSTANTIATED DURING THE RUNNING OF THE PROGRAM AS ELEMENT:4
␈↓ α,␈↓ PUP WANTS A NAME FOR THIS 'SOME PART OF' FUNCTION.)
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (TAKE:HOLD:OF:3 ELEMENT:4) OF THE
␈↓ α,␈↓ FUNCTION TAKE:HOLD:OF:3 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(TAKE:HOLD:OF:3
␈↓ α,␈↓ (NLAMBDA (ARG1)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓ (PRINT (COMMENT READY TO ACCEPT BRAND NEW ELEMENT:4))
␈↓ α,␈↓ (SET ARG1 (READ))
␈↓ α,␈↓ (SETQ ELEMENT:OBJECTS:11 (SOME:PART:OF:12 (EVAL ARG1)))
␈↓ α,␈↓ (SETQ ELEMENT:CLASSNAME:13 (SOME:PART:OF:14 (EVAL ARG1)))
␈↓ α,␈↓ (SETQ ELEMENT:RELNS:15 (SOME:PART:OF:16 (EVAL ARG1)))
␈↓ α,␈↓ T))
␈↓ α,␈↓(COMMENT NAME:OF:CLASS IS NOT A BEING YET)
␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:6 TYPE OF ( TAKE:HOLD:OF))
␈↓ α,␈↓(THE ASSIGNMENT WHICH SET NAME:OF:CLASS
␈↓ α,␈↓ WAS DONE EARLIER; SHOULD A NEW VALUE OF
␈↓ α,␈↓ NAME:OF:CLASS BE READ IN AT THIS POINT IN
␈↓ α,␈↓ THE PROGRAM FLOW? USER...)
␈↓ α,␈↓␈↓βNO␈↓
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (TAKE:HOLD:OF:6 NAME:OF:CLASS) OF THE
␈↓ α,␈↓ FUNCTION TAKE:HOLD:OF:6 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.6␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓(TAKE:HOLD:OF:6
␈↓ α,␈↓ (NLAMBDA (ARG1)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS)
␈↓ α,␈↓ (COMMENT NOTHING MUCH TO DO HERE; JUST ONE SIMPLE ASSIGNMENT
␈↓ α,␈↓ TO AN ALREADY EXISTING VALUE)
␈↓ α,␈↓ (SET ARG1 OBVIOUS:KNOWN:VALUE:OF:NAME:OF:CLASS)))
␈↓ α,␈↓MOVE CURSOR TO ( GET:HOLD:OF:8 TYPE OF ( GET:HOLD:OF))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓ (COMPUTE SEARCH GENERATE:AND:TEST)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... COMPUTE)
␈↓ α,␈↓(B .... SEARCH)
␈↓ α,␈↓(C .... GENERATE:AND:TEST)
␈↓ α,␈↓USER: ␈↓β(B)␈↓
␈↓ α,␈↓YOU MUST GIVE ME A LIST OF ALL THE VALUES THAT COULD EVER OCCUR AS
␈↓ α,␈↓NAMES ON THE LIST STRUCTURE SET:OF:POSSIBLE:NAMES:OF:CLASS
␈↓ α,␈↓IF THIS ISN'T MEANINGFUL, REPLY NIL.
␈↓ α,␈↓USER: ␈↓βNIL␈↓
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓ (DOES AN ALGORITHM ALREADY EXIST WHICH GETS
␈↓ α,␈↓ PRECISELY NAME:OF:CLASS)
␈↓ α,␈↓ SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓
␈↓ α,␈↓OK, READY TO MOVE ON NOW.
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (PROGN (FOREACH POSSIBLE:NAME:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLASS
␈↓ α,␈↓ DO (TEST POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓ (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓ (PRIN1 "
␈↓ α,␈↓ MY GUESS FOR THIS IS ")
␈↓ α,␈↓ (PRINT POSSIBLE:NAME:OF:CLASS))
␈↓ α,␈↓OF THE FUNCTION GET:HOLD:OF:8 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓MOVE CURSOR TO ( FOREACH:17 TYPE OF ( FOREACH))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.7␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓ (I ASSUME THAT I STOP AFTER EXAMINING ALL
␈↓ α,␈↓ POSSIBLE:NAMES:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLASS ;
␈↓ α,␈↓ DO I ALSO STOP AFTER SOME CONDITION 'C' BECOMES TRUE?)
␈↓ α,␈↓SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βYES␈↓
␈↓ α,␈↓PLEASE TYPE IN A PREDICATE EQUIVALENT TO THIS UNTIL CONDITION 'C'.
␈↓ α,␈↓USER: ␈↓β(TEST:18 SUCCEEDED)␈↓
␈↓ α,␈↓OK, READY TO MOVE ON NOW.
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (FOREACH:17 POSSIBLE:NAME:OF:CLASS IN
␈↓ α,␈↓ SET:OF:POSSIBLE:NAMES:OF:CLASS DO (TEST:18 POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓ (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓ OF THE FUNCTION FOREACH:17
␈↓ α,␈↓ TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(FOREACH:17
␈↓ α,␈↓ (NLAMBDA (ARG1 DUMMY:ARGUMENT:2 ARG3 DUMMY:ARGUMENT:1 ARG5)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS BOUND
␈↓ α,␈↓ TO POSSIBLE:NAME:OF:CLASS)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG3 IS BOUND
␈↓ α,␈↓ TO SET:OF:POSSIBLE:NAMES:OF:CLASS)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG5 IS BOUND
␈↓ α,␈↓ TO (COMMENT TEST:18 POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓ (COMMENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓ (PROG (RESULT:1)
␈↓ α,␈↓ (SETQ EVAL:ARG3 (EVAL ARG3))
␈↓ α,␈↓ LABEL:2
␈↓ α,␈↓ (COND
␈↓ α,␈↓ ((NULL EVAL:ARG3)
␈↓ α,␈↓ (SET ARG1 FAILURE:VALUE)
␈↓ α,␈↓ (RETURN EXHAUSTION:VALUE)))
␈↓ α,␈↓ (SET ARG1 (CAR EVAL:ARG3))
␈↓ α,␈↓ (SETQ EVAL:ARG3 (CDR EVAL:ARG3))
␈↓ α,␈↓ (SETQ RESULT:1 (EVAL ARG5))
␈↓ α,␈↓ (COND
␈↓ α,␈↓ ((NOT (EQUAL RESULT:1 NIL)) ␈↓∧<This predicate is the
␈↓ α,␈↓∧ translation of␈↓ ␈↓βTEST:18 SUCCEEDED␈↓␈↓∧.>␈↓
␈↓ α,␈↓ (RETURN UNTIL:CONDITION:VALUE))
␈↓ α,␈↓ (T (GO LABEL:2)))
␈↓ α,␈↓ (COMMENT AT THE TIME THAT FOREACH:17 WAS CODED, THE UNTIL
␈↓ α,␈↓ CONDITION VALUE WAS LEFT UNDEFINED))))
␈↓ α,␈↓MOVE CURSOR TO ( TEST:18 TYPE OF ( TEST))
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.8␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓ (SHOULD WE IMPLEMENT ERROR RECOVERY IN ANY
␈↓ α,␈↓ FANCY WAY)
␈↓ α,␈↓SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓␈↓βNO␈↓
␈↓ α,␈↓NOTHING TO DO AT THIS TIME, THEN.
␈↓ α,␈↓OK, READY TO MOVE ON NOW.
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓ (( THE TESTING MAY HAVE THE CHARACTER
␈↓ α,␈↓ OF COMPARING THE OBJECT WITH SOME DISTINGUISHED OBJECT)
␈↓ α,␈↓ ( TESTING MAY HAVE THE CHARACTER OF LETTING THE OBJECT
␈↓ α,␈↓ (WHICH IS ARG1) COMPETE WITH ITS FELLOW OBJECTS
␈↓ α,␈↓ FOR SUPREMACY)
␈↓ α,␈↓ ABOVE, ARG1 REFERS TO POSSIBLE:NAME:OF:CLASS )
␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (COMPARE ARG1 ELEMENT:4)
␈↓ α,␈↓OF THE FUNCTION TEST:18 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (COMPARE:19 ARG1 ELEMENT:4) OF THE
␈↓ α,␈↓ FUNCTION COMPARE:19 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(COMPARE:19
␈↓ α,␈↓ (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS POSSIBLE:NAME:
␈↓ α,␈↓ -OF:CLASS)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓ ARG1
␈↓ α,␈↓ ARG2
␈↓ α,␈↓ (COMMENT ARG1 AND ARG2 ARE HERE SIMPLY TO CAUSE PUP
␈↓ α,␈↓ TO STICK IN COMMENTS ABOUT THEIR INSTANTIATION)
␈↓ α,␈↓ (JOIN:23 (COMPARE:24 POSSIBLE:NAME:OF:CLASS:OBJECTS:20
␈↓ α,␈↓ ELEMENT:OBJECTS:11)
␈↓ α,␈↓ (COMPARE:25 POSSIBLE:NAME:OF:CLASS:CLASSNAME:21
␈↓ α,␈↓ ELEMENT:CLASSNAME:13)
␈↓ α,␈↓ (COMPARE:26 POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓ ELEMENT:RELNS:15))))
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α*page A5.9␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓␈↓∧Here␈αbegins␈αone␈αof␈αthe␈αsections␈α
discussed␈αon␈αpage␈α19␈αof␈αthis␈αpaper,␈α
the␈αgenesis
␈↓ α,␈↓∧of␈α∃the␈α∀MUSTNOT/MUST/MAY␈α∃divisions.␈α∀ The␈α∃names␈α∀used␈α∃here␈α∃differ␈α∀slightly
␈↓ α,␈↓∧from those in the body of the paper. The symbol # stands for "contradiction".␈↓
␈↓ α,␈↓MOVE CURSOR TO ( JOIN:23 TYPE OF ( JOINING:FUNCTION))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS PREDICATE DECISION:
␈↓ α,␈↓ (WHEN WE TERMINATE THE LOOP)
␈↓ α,␈↓PLEASE TYPE IN A LOGICAL EXPRESSION WHICH IS TRUE ( WHEN WE TERMINATE
␈↓ α,␈↓ THE LOOP) AND IS FALSE OTHERWISE.
␈↓ α,␈↓USER: ␈↓β(ANY RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:22 IS INCOMPATIBLE
␈↓ α,␈↓β WITH ELEMENT:RELNS:15)␈↓
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (AND ARG1 ARG2 ARG3) ␈↓∧<The inference here, from the last user
␈↓ α,␈↓∧ response. is that the joining function is AND.>␈↓
␈↓ α,␈↓OF THE FUNCTION JOIN:23 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL OF THE FUNCTION JOIN:23 TO THIS NEW
␈↓ α,␈↓ PIECE OF CODE, WHICH IS ITS BODY:
␈↓ α,␈↓(JOIN:23
␈↓ α,␈↓ (LAMBDA (ARG1 ARG2 ARG3)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS
␈↓ α,␈↓ COMPARE:24 POSSIBLE:NAME:OF:CLASS:OBJECTS:20 ELEMENT:OBJECTS:11))
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS
␈↓ α,␈↓ COMPARE:25 POSSIBLE:NAME:OF:CLASS:CLASSNAME:21 ELEMENT:CLASSNAME:13))
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG3 IS INSTANTIATED AS
␈↓ α,␈↓ COMPARE:26 POSSIBLE:NAME:OF:CLASS:RELNS:22 ELEMENT:RELNS:15))
␈↓ α,␈↓ (AND ARG1 ARG2 ARG3)))
␈↓ α,␈↓(COMMENT POSSIBLE:NAME:OF:CLASS:OBJECTS:20 IS NOT A BEING YET)
␈↓ α,␈↓(COMMENT ELEMENT:OBJECTS:11 IS NOT A BEING YET)
␈↓ α,␈↓MOVE CURSOR TO ( COMPARE:26 TYPE OF ( COMPARE))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECISION:
␈↓ α,␈↓ (( COMPARING MAY INVOLVE A FUNCTION
␈↓ α,␈↓ APPLIED DIRECTLY TO THE TWO ARGUMENTS)
␈↓ α,␈↓ ( COMPARING MAY INVOLVE APPLYING A
␈↓ α,␈↓ FUNCTION TO CORRESPONDING PAIRS OF
␈↓ α,␈↓ SUBPARTS OF THE OBJECTS, AND FINALLY
␈↓ α,␈↓ JOINING TOGETHER ALL THESE
␈↓ α,␈↓ SUB-COMPARISONS' RESULTS)
␈↓ α,␈↓ (ABOVE, ARG1 REFERS TO
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.10␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓ POSSIBLE:NAME:OF:CLASS:RELNS:22)
␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!
␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓ (PROGN (COMMENT HERE WE MAY LATER WANT TO PUT SOME ASSIGNMENTS,
␈↓ α,␈↓ REWRITES, AND ITERATIVE STATEMENTS)
␈↓ α,␈↓ (COND ((NOT (FORSOME RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓ (RECOGNIZE:# RELATION ELEMENT:RELNS:15)))
␈↓ α,␈↓ T)
␈↓ α,␈↓ (T NIL)))
␈↓ α,␈↓OF THE FUNCTION COMPARE:26 INTO LISP. FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.
␈↓ α,␈↓MOVE CURSOR TO ( CONTRADICTS:27 TYPE OF ( RECOGNIZE:#))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION:
␈↓ α,␈↓ (PROBABILITY=1:#
␈↓ α,␈↓ PROBABILITY=0:#
␈↓ α,␈↓ PROBABILITY>0&<1:#)
␈↓ α,␈↓ SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... PROBABILITY=1:#)
␈↓ α,␈↓(B .... PROBABILITY=0:#)
␈↓ α,␈↓(C .... PROBABILITY>0&<1:#)
␈↓ α,␈↓USER: ␈↓β(A B C)␈↓
␈↓ α,␈↓(I RECOMMEND THAT POSSIBLE:NAME:OF:CLASS:RELNS:22 BE STRUCTURED INTO (AT
␈↓ α,␈↓ LEAST ALONG ONE DIMENSION) THESE 3 PIECES:
␈↓ α,␈↓ (PROBABILITY=1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓ PROBABILITY=0:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓ PROBABILITY>0&<1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22) .
␈↓ α,␈↓PLEASE TYPE BACK YES, NO, OR UNSURE.)
␈↓ α,␈↓USER: ␈↓βYES␈↓
␈↓ α,␈↓␈↓∧ <The Long-Name-Demon now grumbles about these awkward names.>␈↓
␈↓ α,␈↓I WANT A SHORTER NAME FOR
␈↓ α,␈↓ PROBABILITY:1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS.
␈↓ α,␈↓PLEASE TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βYES:RELNS␈↓
␈↓ α,␈↓THE NAME CHOSEN IS YES:RELNS:28
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.11␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL
␈↓ α,␈↓ (CONTRADICTS:27 RELATION ELEMENT:RELNS:15)
␈↓ α,␈↓ OF THE FUNCTION CONTRADICTS:27 TO THIS NEW PIECE OF CODE, WHICH
␈↓ α,␈↓ IS ITS BODY:
␈↓ α,␈↓(CONTRADICTS:27
␈↓ α,␈↓ (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS RELATION)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:RELNS:15)
␈↓ α,␈↓ (COND
␈↓ α,␈↓ ((MEMBER ARG1 YES:RELNS:28)
␈↓ α,␈↓ (COMMENT ARG1 OCCURS WITH PROBABILITY 1, SO IT HAD
␈↓ α,␈↓ BETTER BE IN ARG2, WHICH IS
␈↓ α,␈↓ THE RELEVANT PIECE OF THE WORLD)
␈↓ α,␈↓ (NOT (MEMBER ARG1 ARG2)))
␈↓ α,␈↓ ((MEMBER ARG1 NO:RELNS:29)
␈↓ α,␈↓ (COMMENT SINCE ARG1 SHOULD NEVER OCCUR, WE HAVE A
␈↓ α,␈↓ CONTRADICTION IFF IT IS A
␈↓ α,␈↓ MEMBER OF ARG2, WHICH IS
␈↓ α,␈↓ THE RELEVANT PIECE OF THE WORLD)
␈↓ α,␈↓ (MEMBER ARG1 ARG2))
␈↓ α,␈↓ (T (COMMENT WE MAY OR MAY NOT HAVE ARG1 IN ARG2; EITHER
␈↓ α,␈↓ CASE IS ALLOWABLE; SO WE
␈↓ α,␈↓ NEVER HAVE A CONTRADICTION)
␈↓ α,␈↓ NIL))))
␈↓ α,␈↓PUP: (PUP WORKED ON SOMETHING IMPROBABLE, NAMELY (IN ALL CODE GENERATED,
␈↓ α,␈↓ POSSIBLE:NAME:OF:CLASS:RELNS:22 SHOULD BE
␈↓ α,␈↓ REPLACED BY (APPEND YES:RELNS:28 NO:RELNS:29 MAYBE:RELNS:30)),
␈↓ α,␈↓ AND HERE IS WHAT WE FINALLY DID ABOUT IT: (WE REPLACED
␈↓ α,␈↓ ALL OCCURRENCES OF POSSIBLE:NAME:OF:CLASS:RELNS:22 BY
␈↓ α,␈↓ (APPEND YES:RELNS:28 NO:RELNS:29 MAYBE:RELNS:30)))
␈↓ α,␈↓MOVE CURSOR TO ( MODIFY:STRUCTURE:7 TYPE OF ( MODIFY:STRUCTURE))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SUBSETOF DECISION:
␈↓ α,␈↓ (CONDITIONAL:INSERTION
␈↓ α,␈↓ CONDITIONAL:DELETION
␈↓ α,␈↓ COMPLEX:ALTERATION)
␈↓ α,␈↓ SINCE THE DECISION IS SUBSET:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... CONDITIONAL:INSERTION)
␈↓ α,␈↓(B .... CONDITIONAL:DELETION)
␈↓ α,␈↓(C .... COMPLEX:ALTERATION)
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.12␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓USER: ␈↓β(A C)␈↓
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL (MODIFY:STRUCTURE:7 NAME:OF:CLASS) OF
␈↓ α,␈↓ THE FUNCTION MODIFY:STRUCTURE:7 TO THIS NEW PIECE OF CODE, WHICH IS
␈↓ α,␈↓ ITS BODY:
␈↓ α,␈↓(MODIFY:STRUCTURE:7
␈↓ α,␈↓ (LAMBDA (ARG1)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS)
␈↓ α,␈↓ (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS NIL)
␈↓ α,␈↓ (CONDITIONAL:INSERTION:31 ARG1 ARG2)
␈↓ α,␈↓ (COMPLEX:ALTERATION:32 ARG1 ARG2)))
␈↓ α,␈↓I HAVE DECIDED TO KEEP POSSIBLE:NAME:OF:CLASS STRUCTURED
␈↓ α,␈↓ USING THE PROPERTY LIST FEATURE OF LISP.
␈↓ α,␈↓ FOR THIS REASON, I NEED TO HAVE A NAME FOR EACH
␈↓ α,␈↓ PROPERTY (CORRESPONDING TO EACH SUBPART OF POSSIBLE:NAME:OF:CLASS) :
␈↓ α,␈↓␈↓∧<This is the end of the example fragments of dialogue>␈↓
␈↓ α,␈↓␈↓∧Below␈α∞is␈α
the␈α∞same␈α
piece␈α∞of␈α
dialogue␈α∞set␈α
off␈α∞by␈α
lines␈α∞of␈α
asterisks␈α∞on␈α∞page␈α
A5.2.
␈↓ α,␈↓∧It␈α⊃occupied␈α∩only␈α⊃seven␈α⊃lines␈α∩of␈α⊃the␈α⊃preceding␈α∩excerpt,␈α⊃but␈α⊃below␈α∩it␈α⊃occupies
␈↓ α,␈↓∧eight␈α∪pages.␈α∪The␈α∀user␈α∪may␈α∪interrupt␈α∪after␈α∀each␈α∪BEING␈α∪receives␈α∀control,␈α∪and
␈↓ α,␈↓∧often␈α∪does.␈α∀When␈α∪in␈α∪an␈α∀interrupt,␈α∪the␈α∀user␈α∪is␈α∪prompted␈α∀by␈↓␈α∪REQUEST:␈α∀␈↓∧,␈α∪after
␈↓ α,␈↓∧which␈α∞he␈α∞may␈α∂type␈α∞in␈α∞a␈α∞query.␈α∂This␈α∞will␈α∞typically␈α∞be␈α∂the␈α∞name␈α∞of␈α∞a␈α∂BEING␈α∞part,
␈↓ α,␈↓∧which␈α∂is␈α⊂then␈α∂"asked"␈α⊂of␈α∂the␈α⊂current␈α∂BEING.␈α∂ The␈α⊂active␈α∂BEINGs␈α⊂are␈α∂kept␈α⊂on␈α∂a
␈↓ α,␈↓∧stack,␈α⊂and␈α⊂typing␈α⊃CH␈α⊂will␈α⊂print␈α⊃out␈α⊂this␈α⊂stack.␈α⊃Typing␈α⊂OLDER␈α⊂or␈α⊃YOUNGER␈α⊂lets
␈↓ α,␈↓∧the␈α∞user␈α∂crawl␈α∞around␈α∂this␈α∞stack;␈α∞the␈α∂question␈α∞he␈α∂types␈α∞in␈α∞is␈α∂by␈α∞default␈α∂put␈α∞to
␈↓ α,␈↓∧the␈α∪BEING␈α∪indicated␈α∪by␈α∪the␈α∀stack␈α∪marker␈α∪(when␈α∪printed,␈α∪this␈α∪BEING␈α∀name␈α∪is
␈↓ α,␈↓∧surrounded by asterisks). ␈↓
␈↓ α,␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** CHOOSE:FROM *** (WRITE:PROGRAM SERVE)
␈↓ α,␈↓␈↓∧This last request, CH, asked PUP6 to type out the control history;
␈↓ α,␈↓∧who called who, etc. In the current case, this is simply a stack.
␈↓ α,␈↓∧The present BEING is CHOOSE:FROM, and it is delimited by asterisks.
␈↓ α,␈↓∧It was called by WRITE:PROGRAM which was called by SERVE.␈↓
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(CHOOSE THE BEST BEING FROM THE SET (OBTAIN:USABLE:INFORMATION
␈↓ α,␈↓ USE:INFORMATION
␈↓ α,␈↓ FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓ CLARIFY:IMPROBABLE:SITUATION
␈↓ α,␈↓ ADAPT:PRECONCEIVED:FUNCTION
␈↓ α,␈↓ FIX:INCORRECT:PIECE )
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.13␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓ OF BEINGS)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE THE FLOW OF CONTROL OF A PROGRAM MUST BE DETERMINATE)
␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓WRITE:PROGRAM
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(WRITE A PROGRAM WHICH DOES (CONCEPT:FORMATION))
␈↓ α,␈↓␈↓∧ <notice the effect of saying␈↓ ␈↓βOLDER␈↓ ␈↓∧; questions are now
␈↓ α,␈↓∧ directed to WRITE:PROGRAM instead of to CHOOSE:FROM.>␈↓
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO OBEY USER; ALSO, IT IS NECESSARY THAT CODE BE
␈↓ α,␈↓ WRITTEN TO DO (CONCEPT:FORMATION) IN ORDER THAT
␈↓ α,␈↓ THE TASK (CONCEPT:FORMATION) MIGHT BE COMPLETED;
␈↓ α,␈↓ ALSO, EXAMINE SPEC:WHY)
␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHY
␈↓ α,␈↓β␈↓(WE CALL THE FIRST BEING WHICH CAN BRING ABOUT THE EFFECT
␈↓ α,␈↓ (TYPE OF((CONCEPT:FORMATION) HAS BEEN STUDIED)))
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CREATE SPECIALIZED LISP CODE WHICH WILL DO (CONCEPT:FORMATION))
␈↓ α,␈↓REQUEST: ␈↓β?
␈↓ α,␈↓ YOUR OPTIONS ARE AS FOLLOWS:
␈↓ α,␈↓QUIT END THE INTERRUPT
␈↓ α,␈↓BEING PRINT NAME OF CURRENT BEING
␈↓ α,␈↓DEMONS PRINT SET OF DEMONS CURRENTLY ACTIVE
␈↓ α,␈↓CONTROL:HISTORY PRINT LIST OF BEINGS IN CONTROL, THE PATH FROM THE
␈↓ α,␈↓ CURRENT BEING BACK TO THE BEGINNING OF THE PROGRAM
␈↓ α,␈↓OLDER CONSIDER THE BEING WHICH CALLED THE CURRENT ONE
␈↓ α,␈↓YOUNGER CONSIDER THE BEING WHICH THE CURRENT ONE CALLED
␈↓ α,␈↓OLDEST CONSIDER THE FIRST BEING IN CONTROL
␈↓ α,␈↓YOUNGEST CONSIDER THE LAST BEING IN CONTROL
␈↓ α,␈↓SPEC:WHEN AN EVALUATED VERSION OF 'WHEN'
␈↓ α,␈↓FAIL END THE INTERRUPT AND CAUSE CURRENT BEING TO FAIL
␈↓ α,␈↓NEW:LEVEL CHANGE THE USER:INTERRUPT LEVEL
␈↓ α,␈↓SPEC:WHY PRINT OUT THE SPECIFIC REASON(S) THAT THIS BEING WAS
␈↓ α,␈↓TYPING ONE OF THESE WILL PRINT OUT WRITE:PROGRAM'S ANSWER TO THAT
␈↓ α,␈↓ QUESTION:
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.14␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓(IDEN IMPLICIT:ARGS EXPLICIT:ARGS EXPLICIT:ARGS:CHECK NLAMBDA
␈↓ α,␈↓ NON:EVAL:ARGS WHAT HOW WHY SPEC:WHY MAIN:EFFECTS MINOR:EFFECTS WHEN
␈↓ α,␈↓ META:CODE COMMENTS PRE:REQUISITES CO:REQUISITES POST:REQUISITES DEMONS
␈↓ α,␈↓ AFFECTS COMPLEXITY:VECTOR GENERALIZATIONS SPECIALIZATIONS ALTERNATIVES
␈↓ α,␈↓ PREDICATE DATA:STRUCTURE ENCODABLE INHIBIT:CURRENT:DEMONS FORM:CHANGING)
␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHEN
␈↓ α,␈↓β␈↓((T IS T SO WE DO ADD IN THE WEIGHT (COND ((MEMBER TASK ABLE:PUP:LIST)
␈↓ α,␈↓ -75) (T 40))
␈↓ α,␈↓ WHICH IN THE CURRENT CASE IS 40;
␈↓ α,␈↓ THE EXPLANATION IS (BECAUSE A PRE:EXISTING ABILITY TO DO
␈↓ α,␈↓ (CONCEPT:FORMATION) IMPLIES THAT WRITING A NEW
␈↓ α,␈↓ PROGRAM TO ACCOMPLISH IT IS SUPERFLUOUS AND,
␈↓ α,␈↓ CONVERSELY, THE INABILITY TO
␈↓ α,␈↓ DO ( CONCEPT:FORMATION) ABDUCTIVELY
␈↓ α,␈↓ ENCOURAGES US THAT WE ARE ON THE RIGHT TRACK))
␈↓ α,␈↓ ((MEMBER TASK WRITTEN:PROGRAMS:LIST) IS NIL, SO WE DONT ADD IN THE
␈↓ α,␈↓ WEIGHT -80 WHICH IN THE CURRENT CASE IS -80 ;
␈↓ α,␈↓ THE EXPLANATION IS (BECAUSE WE ARE NOT MUCH AFTER EFFICIENCY, AND
␈↓ α,␈↓ IF A PROGRAM ALREADY EXISTS, THEN WE SHOULD USE IT))
␈↓ α,␈↓ ((MEMBER ( PUP IS ABOUT TO WRITE A PROGRAM TO DO (TASK)) AWARE:USER:LIST)
␈↓ α,␈↓ IS NIL SO WE DONT ADD IN THE WEIGHT 70
␈↓ α,␈↓ WHICH IN THE CURRENT CASE IS 70 ;
␈↓ α,␈↓ THE EXPLANATION IS (BECAUSE WE GO BY THE OLD
␈↓ α,␈↓ ENGLISH LEGAL RULE THAT SILENCE SIGNIFIES APPROVAL))
␈↓ α,␈↓ (T IS T SO WE DO ADD IN THE WEIGHT (COND (NEW:INFO:LIST -120)
␈↓ α,␈↓ (T 40)) WHICH IN THE CURRENT CASE IS 40 ;
␈↓ α,␈↓ THE EXPLANATION IS (BECAUSE WE SHOULD USE UP THE NEW INFORMATION BEFORE
␈↓ α,␈↓ WRITING PROGRAMS .
␈↓ α,␈↓ ALSO: BECAUSE IF NO NEW INFO IS PRESENT,
␈↓ α,␈↓ THEN WE NEEDN'T FEEL GUILTY ABOUT STARTING TO WRITE
␈↓ α,␈↓ A PROGRAM)))
␈↓ α,␈↓(THE FINAL WHEN VALUE IS THUS 80)
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)
␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓SERVE
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM WRITE:PROGRAM) *** SERVE *** NIL
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DO ANYTHING THE USER ASKS)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO SERVE THE USER)
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.15␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(GET A TASK FROM THE USER)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βY
␈↓ α,␈↓WRONG; TYPE YES OR NO ......... INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓BETTER ␈↓∧<i.e., the name of the BEING now in control is "BETTER">␈↓
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DECIDE WHICH OF (USE:INFORMATION (QUOTE PGM))
␈↓ α,␈↓ (OBTAIN USABLE INFORMATION (QUOTE PGM))
␈↓ α,␈↓ IS MORE A PROPOS TO TRY)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(PUP CAN ONLY TRY AT MOST ONE OF USE:INFORMATION AND
␈↓ α,␈↓ OBTAIN:USABLE:INFORMATION AT A TIME)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(COMPARE THE WHEN PARTS OF USE:INFORMATION AND OBTAIN:USABLE:INFORMATION
␈↓ α,␈↓ AND, IF NECESSARY, COMPARE THEIR COMPLEXITY VECTORS)
␈↓ α,␈↓REQUEST: ␈↓βCOMPLEXITY:VECTOR
␈↓ α,␈↓β␈↓(.5 .5 .5 .5 .1)
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** BETTER *** (CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(SATISFY THE SIMPLE SUBGOAL (TYPE OF ((CONCEPT:FORMATION) HAS BEEN
␈↓ α,␈↓ STUDIED)))
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(PASS CONTROL TO THE SIMPLEST SUFFICIENT BEING)
␈↓ α,␈↓REQUEST: ␈↓βAFFECTS
␈↓ α,␈↓β␈↓(((STUDY:TYPE (CONCEPT:FORMATION)) POSSIBLE:CALLED)
␈↓ α,␈↓ (TRY:BEING CALLED)
␈↓ α,␈↓ (SORT CALLED)
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.16␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓ (A:BEING:ORDER CALLED))
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** SATISFY *** (FILL:IN:UNDEFINED:SECTION CHOOSE:FROM WRITE:PROGRAM
␈↓ α,␈↓ SERVE)
␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(FILL IN AN UNDEFINED SECTION OF CODE AND ADD IT TO THE PROGRAM PGM)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE ALL PIECES OF CODE MUST BE DEFINED OR THE PROGRAM WONT RUN)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CHOOSE THE SIMPLEST UNDEFINED PIECE AND ENCODE IT)
␈↓ α,␈↓REQUEST: ␈↓βCHOICE
␈↓ α,␈↓β␈↓( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓REINVESTIGATE:DECISION
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(RESOLVE THE DECISION
␈↓ α,␈↓ (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1)
␈↓ α,␈↓ AFFECTS (WHETHER PARAMETERS
␈↓ α,␈↓ DESCRIBING AN INDIVIDUAL MUST BE READ IN BY CF:1)
␈↓ α,␈↓ WHEN (BEFORE ANY ROUTINES ARE FINALIZED)
␈↓ α,␈↓ WHY (BECAUSE ANY PROCESSING
␈↓ α,␈↓ ROUTINE MAY HAVE TO DEPEND UPON SOME INDIVIDUAL PARAMETERS))
␈↓ α,␈↓ BECAUSE (SETINTERSECTION UNDEFINED:SECTION:LIST DOING:PUP:LIST)
␈↓ α,␈↓ IS NOW NONNULL; FIRST TRY TO DEFER IT A LITTLE LONGER)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO DEFER UNTIL ;ELSE TRY TO RESOLVE IT WITH PRESENT KNOWLEDGE ;
␈↓ α,␈↓ ELSE ASK THE USER TO RESOLVE IT)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.17␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓β␈↓NIL *** DEFER:DECISION *** (REINVESTIGATE:DECISION FILL:IN:UNDEFINED:S-
␈↓ α,␈↓ -ECTION CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** UTILIZE *** (WHEN:NEXT DEFER:DECISION REINVESTIGATE:DECISION
␈↓ α,␈↓ FILL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓ WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(SEARCH THROUGH NIL FOR APPLICABLE RULES) ␈↓∧<i.e., there are no known
␈↓ α,␈↓∧ ways to defer this any longer>␈↓
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** RESOLVE:DECISION *** (DEFER:DECISION REINVESTIGATE:DECISION
␈↓ α,␈↓ FILL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓ WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(AS FAR AS WE KNOW AT THIS INSTANT, THE DECISION
␈↓ α,␈↓ (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1) )
␈↓ α,␈↓ CANNOT BE DEFERRED ANY LONGER)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO RESOLVE (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF
␈↓ α,␈↓ CF:1)) WITH PRESENT KNOWLEDGE; IF THAT FAILS, ASK
␈↓ α,␈↓ THE USER ABOUT IT)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** ASK:USER:ABOUT *** (RESOLVE:DECISION DEFER:DECISION REINVESTIG-
␈↓ α,␈↓ -ATE:DECISION FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓ CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(ASK THE USER TO RESOLVE DECISION ((BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR
␈↓ α,␈↓ MAY BE REQUIRED OF CF:1))
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.18␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE PUP CANNOT RESOLVE IT, BUT MUST AT THIS TIME)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISION:
␈↓ α,␈↓ (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED
␈↓ α,␈↓ OF CF:1)
␈↓ α,␈↓ SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓ ␈↓∧ If the user answered
␈↓ α,␈↓∧affirmatively, copious amounts of data would appear, describing
␈↓ α,␈↓∧what this choice is, the effects of each possible answer, why it
␈↓ α,␈↓∧can't wait, who wanted this done, and so on. ␈↓
␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓
␈↓ α,␈↓OK, READY TO MOVE ON NOW.
␈↓ α,␈↓␈↓∧Here are a few more direct queries to BEINGS during the dialogue:␈↓
␈↓ α,␈↓REQUEST: ␈↓βUNDEFINED:SECTION:LIST
␈↓ α,␈↓β␈↓(( PARTITION:A:DOMAIN) ( PAD:2 TYPE OF ( PARTITION:A:DOMAIN)))
␈↓ α,␈↓REQUEST: ␈↓βAWARE:USER:LIST
␈↓ α,␈↓β␈↓(( THE NAME OF THE PROGRAM TO DO ( CONCEPT:FORMATION) IS CF:1)
␈↓ α,␈↓PUP: (PUP & USER MAY REFER TO THIS NEW
␈↓ α,␈↓ SPECIALIZED VERSION OF (CONCEPT:FORMATION) AS CF:1)
␈↓ α,␈↓REQUEST: ␈↓β(PLUS 2 2)␈↓ ␈↓∧ <The evaluation inside an interrupt is converse to DWIM:
␈↓ α,␈↓∧ if the expression can be understood, it is processed specially;
␈↓ α,␈↓∧ otherwise, we THEN try to EVAL the expression.>␈↓
␈↓ α,␈↓4
␈↓ α,␈↓REQUEST: ␈↓βDEMONS
␈↓ α,␈↓β␈↓THE CURRENT DEMONS ARE:
␈↓ α,␈↓ (FRINGE:OF:CONCIOUSNESS:DEMON PSYCHOLOGY:DEMON PROGRAM:WRITING:DEMONS
␈↓ α,␈↓ DEFERRAL:DEMON REINVESTIGATION:DEMON IDIOM:DEMON
␈↓ α,␈↓ SPECIFICITY:CHECK:DEMON FORGETFUL:USER:DEMON)
␈↓ α,␈↓THE DEMON STACK IS ((PROGRAM:WRITING:DEMONS DEFERRAL:DEMON REINVESTIGATI-
␈↓ α,␈↓ -ON:DEMON IDIOM:DEMON SPECIFICITY:CHECK:DEMON
␈↓ α,␈↓ FORGETFUL:USER:DEMON)
␈↓ α,␈↓ (FORGETFUL:USER:DEMON))
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.19␈↓ ↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓
i␈↓βDoug Lenat␈↓
␈↓ α,␈↓REQUEST: ␈↓βBEING:STACK
␈↓ α,␈↓β␈↓(WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βNEW:LEVEL
␈↓ α,␈↓HELLO THERE. I AM READY TO SWITCH TO A DIFFERENT MODE OF INTERRUPTABILITY.
␈↓ α,␈↓HOW OFTEN SHOULD I LET YOU INTERRRUPT ME, TO ASK ME ABOUT WHAT I'M
␈↓ α,␈↓ DOING? TYPE A DIGIT, AS EXPLAINED BELOW:
␈↓ α,␈↓ 0 NEVER (ULTIMATE PRODUCTION-RUN MODE)
␈↓ α,␈↓ 2 A COUPLE OF TIMES DURING THE COURSE OF WRITING A PROGRAM
␈↓ α,␈↓ 4 DURING EACH PHASE OF WRITING A PROGRAM
␈↓ α,␈↓ 6 DURING THE WRITING OF EACH NONTRIVIAL SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓ 8 DURING EACH PHASE OF WRITING EACH SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓10 EACH TIME A BEING TRANSFERS CONTROL (ULTIMATE DEBUG MODE)
␈↓ α,␈↓OK, NOW TYPE A DIGIT... ␈↓βNO␈↓
␈↓ α,␈↓*** ERROR *** YOU MUST TYPE ONE EVEN INTEGER FROM 0 TO 10
␈↓ α,␈↓TRY AGAIN:
␈↓ α,␈↓␈↓β8␈↓
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓␈↓∧This␈α∀concludes␈α∀the␈α∀"frequent-interrupt␈α∪mode"␈α∀excerpt.␈α∀In␈α∀the␈α∀terminology␈α∪of
␈↓ α,␈↓∧NEW:LEVEL,␈α∂this␈α∞was␈α∂at␈α∞interrupt␈α∂level␈α∞10,␈α∂while␈α∞the␈α∂earlier␈α∞excerpts␈α∂were␈α∞at
␈↓ α,␈↓∧level␈α↔0.␈α⊗ Recall␈α↔that␈α⊗this␈α↔last␈α⊗excerpt␈α↔was␈α⊗but␈α↔seven␈α⊗lines␈α↔in␈α↔the␈α⊗earlier
␈↓ α,␈↓∧excerpt,␈α∃which␈α∃in␈α∃turn␈α∃was␈α∃only␈α∃3%␈α∃of␈α∃the␈α∃actual␈α∃300-page␈α⊗dialogue.␈α∃ The
␈↓ α,␈↓∧reader␈α∩who␈α∩has␈α∪read␈α∩through␈α∩to␈α∩this␈α∪point␈α∩will␈α∩probably␈α∩agree␈α∪that␈α∩dialogue
␈↓ α,␈↓∧problems are central to automatic programming.␈↓
␈↓ α,␈↓␈↓¬Fourth Draft .... October 30, 1974␈α?␈α?␈α?␈α?␈α"page A5.20␈↓ ↑User/PUP6 Dialogue excerpts␈↓